package com.yuhs.zixing.study.design.pattern.dp002.structural.s007.proxy.p006;

import java.lang.reflect.InvocationHandler;

/**
 * @description: 被代理类必须实现一个接口，回想一下前面的分析吧。当然了，现在也有很多技术如CGLIB可以实现不需要接口也可以实现动态代理的方式。
 * @author: yuhs
 * @date: 2022/5/2 9:22 PM
 */
public class Client006 {
    public static void main(String[] args) {
        //定义一个主题
        Subject006 subject = new RealSubject006();
        //定义一个Handler
        InvocationHandler handler = new MyInvocationHandler006(subject);
        //定义主题的代理
        Subject006 proxy = SubjectDynamicProxy006.newProxyInstance(subject);
        //代理的行为
        proxy.doSomething("Finish");
    }
}
